package demo03.JAVAObserver;


import java.util.Observable;

/**
 * 利用java内置对象Observable实现观察者模式
 * */
/*
 * 缺点1 Observable是一个类，java是单继承，降低了复用性
 *   2  无法建立自己的实现类
 * */
public class WeatherData extends Observable{
	private float temp; //温度
	private float humidity;//湿度
	private float pressure;//气压
	//构造器
		public WeatherData() {
		
		}
		
		
		//何时通知观察者（当气象数据修改时）
		public void measurementChanged(){
			setChanged();//表示改变状态
			notifyObservers();//通知观察者所发生的改变，参数obj是一些改变的信息
		}

		//此处用于模拟生产数据
		public void setWeatherData(float temp, float humidity, float pressure) {	
			this.temp = temp;
			this.humidity = humidity;
			this.pressure = pressure;
			measurementChanged();
		}
		
		//观察者通过get取的WeatherData数据
		public float getTemp() {
			return temp;
		}
		public float getHumidity() {
			return humidity;
		}
		public float getPressure() {
			return pressure;
		}
		
		
}
